﻿using CNFM_CROCODILE_LOGO.Core.Domain.Current;
using CNFM_CROCODILE_LOGO.Core.Domain.ViewModels;
using System;
using System.Collections.Generic;
using System.Text;

namespace CNFM_CROCODILE_LOGO.Services.Interfaces
{
    /// <summary>
    /// 标识接口
    /// </summary>
    public interface ISignageServices
    {
        #region 条码入库
        /// <summary>
        /// 条码库存列表
        /// </summary>
        /// <param name="index"></param>
        /// <param name="size"></param>
        /// <param name="status"></param>
        /// <param name="sasearch"></param>
        /// <returns></returns>
        PaginationModel GetLogoInputStockAll(int index, int size, string status, string sasearch);
        /// <summary>
        /// 条码导入
        /// </summary>
        /// <param name="models"></param>
        /// <returns></returns>
        ReturnValueModel AddLogoInputStock(List<LogoStockModels> models);
        /// <summary>
        /// 条码分配
        /// </summary>
        /// <param name="models"></param>
        /// <returns></returns>
        ReturnValueModel AllocationLogoInputStock(List<LogoStockModels> models, string sarId, string smId, string enId);
        /// <summary>
        /// 单个条码分配
        /// </summary>
        /// <param name="stockId"></param>
        /// <param name="sarId"></param>
        /// <param name="smId"></param>
        /// <param name="enId"></param>
        /// <returns></returns>
        ReturnValueModel SingleDistributionInputStock(string qRCode, string sarId, string smId, string enId);
        /// <summary>
        /// 批量码分配
        /// </summary>
        /// <param name="qRCodes"></param>
        /// <param name="sarId"></param>
        /// <param name="smId"></param>
        /// <param name="enId"></param>
        /// <returns></returns>
        ReturnValueModel BatchDistributionInputStock(string qRCodes, string sarId, string smId, string enId);
        #endregion


        #region  产品类别
        ReturnValueModel GetSpeciesManageTypeAll(string type);
        #endregion

        #region 标识申请单
        /// <summary>
        /// 标识申请单列表
        /// </summary>
        /// <param name="index"></param>
        /// <param name="size"></param>
        /// <param name="areUnCode"></param>
        /// <param name="status"></param>
        /// <param name="sasearch"></param>
        /// <returns></returns>
        PaginationModel GetSignageApplicationAll(int index, int size, string areUnCode, string enterpriseId, string status, string sasearch);

        //PaginationModel GetSignageApplicationOneAll(int index, int size, string areUnCode, string status, string sasearch);

        //PaginationModel GetSignageApplicationTwoAll(int index, int size, string areUnCode, string status, string sasearch);

        /// <summary>
        /// 标识申请单详情
        /// </summary>
        /// <param name="signagId"></param>
        /// <returns></returns>
        ReturnValueModel GetSignageApplication(string signagId);

        /// <summary>
        /// 标识申请单新增修改
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        ReturnValueModel AddUpdateSignageApplication(SignageApplicationReceiptModels model);

        /// <summary>
        /// 标识申请单停用
        /// </summary>
        /// <param name="signagId"></param>
        /// <returns></returns>
        ReturnValueModel DeleteSignageApplication(string signagId);

        /// <summary>
        /// 标识申请单初审
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        ReturnValueModel ReviewSignageApplicationOne(SignageApplicationReview model);

        /// <summary>
        /// 标识申请单复审
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        ReturnValueModel ReviewSignageApplicationTwo(SignageApplicationReview model);
        #endregion

        #region 标识牌
        /// <summary>
        /// 标识牌列表
        /// </summary>
        /// <param name="index"></param>
        /// <param name="size"></param>
        /// <param name="enterpriseId"></param>
        /// <param name="speciesManageId"></param>
        /// <param name="status"></param>
        /// <param name="sasearch"></param>
        /// <returns></returns>
        PaginationModel GetIdentificationAll(int index, int size, string enterpriseId, string areUnCode, string speciesManageId, string status, string sasearch);
        /// <summary>
        /// 标识牌导入
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        ReturnValueModel AddIdentification(IdentificationModels model);
        /// <summary>
        /// 标识牌详情
        /// </summary>
        /// <param name="identifId"></param>
        /// <returns></returns>
        ReturnValueModel GetIdentification(string identifId);
        /// <summary>
        /// 标识牌激活
        /// </summary>
        /// <param name="identifId"></param>
        /// <returns></returns>
        ReturnValueModel UpdateIdentification(string identifId);
        /// <summary>
        /// 指定激活(单个)
        /// </summary>
        /// <param name="qrCode"></param>
        /// <returns></returns>
        ReturnValueModel UpdateSpecifyActivation(string qrCode);
        /// <summary>
        /// 指定激活(批量)
        /// </summary>
        /// <param name="qrCodes"></param>
        /// <returns></returns>
        ReturnValueModel UpdateSpecifyActivationAll(string qrCodes);
        /// <summary>
        /// 标识多选激活
        /// </summary>
        /// <param name="models"></param>
        /// <returns></returns>
        ReturnValueModel UpdateActivationAll(List<LogoStockModels> models);
        #endregion
    }
}
